'''
Created on 07/09/2013

@author: daniel
'''
import colecciones.nodoGeneral
import unittest

class Trabajador(object):
    
    def __init__(self):
        self.__antiguedad=None
        self.__nombre=None
    def getNombre(self):
        return self.__nombre
    
    def setNombre(self,nombre):
        self.__nombre=nombre
    
    def getAntiguedad(self):
        return self.__antiguedad
    
    def setAntiguedad(self,lista):
        self.__antiguedad=lista
    
    def __str__(self):
        return self.getNombre()
    

class Directorio(colecciones.nodoGeneral.NodoGeneral):
    '''
    classdocs
    '''
    def __init__(self,nombre,antiguedad):
        '''
        Constructor
        '''
        empleado=Trabajador()
        empleado.setAntiguedad(antiguedad)
        empleado.setNombre(nombre)
        colecciones.nodoGeneral.NodoGeneral.__init__(self,empleado)
    
    def getNombre(self):
        return self.getDato().getNombre()
    
    def setNombre(self,nombre):
        self.getDato().setNombre(nombre)
    
    def getAntiguedad(self):
        return self.getDato().getAntiguedad()
    
    def setAntiguedad(self,lista):
        self.getDato().setAntiguedad(lista)
    
    def __str__(self):
        return self.getNombre()
        
class Test(unittest.TestCase):

    def testInit(self):
        self.assertIsInstance(Directorio(None,None), Directorio, "testea creaciona de nodo")

    def testGetDato(self):
        first=Directorio("a",23)
        first.setDato(23)
        self.assertEquals(first.getDato(), 23,"Verifica que entregue el objeto")

    def testSetDato(self):
        first=Directorio(None,23)
        first.setDato(23)
        self.assertIsNotNone(first.nodo.objeto,"Verifica que el objeto si esta")

    def testSetHijos(self):
        first=Directorio("a",23)
        self.assertTrue(first.nodo.link.esVacia(), "Verifica que el objeto no esta")
        first.setHijos(23)
        self.assertIsNotNone(first.nodo.link,"Verifica que el objeto si esta")

    def testGetHijos(self):
        first=Directorio("a",23)
        first.setHijos(23)
        self.assertEquals(first.getHijos(),23,"Verifica que entregue el objeto")

    def testGetNombre(self):
        first=Directorio("a",23)
        self.assertEquals(first.getNombre(),"a","Verifica devolucion del nombre del directorio")

    def testSetNombre(self):
        first=Directorio("a",23)
        first.setNombre("nombre")
        self.assertEquals(first.getNombre(),"nombre","Verifica cambio del nombre del directorio")

    def testGetArchivos(self):
        first=Directorio("a",23)
        self.assertEquals(first.getAntiguedad(),first.nodo.objeto.getAntiguedad(),"Verifica devolucion del __nombre del directorio")

    def testSetArchivos(self):
        first=Directorio("a",23)
        first.setAntiguedad("lista")
        self.assertEquals(first.getAntiguedad(),"lista","Verifica devolucion del __nombre del directorio")

if __name__ == "__main__":
    #import sys;sys.argv = ['', 'Test.testName']
    unittest.main()